package com.cysoft.third.echarts.component.title;

import lombok.Data;

import java.io.Serializable;

/**
 * @author 玖零
 * @version v0.0.1
 * @project cysoft-third-echarts
 * @package com.cysoft.third.echarts.component.title
 * @date 2025/3/12 01:23
 * @desc 标题组件配置
 */
@Data
public class Title implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 组件 ID。默认不指定。指定则可用于在 option 或者 API 中引用组件。
     */
    private String id;

    /**
     * 是否显示标题组件。默认为 true。
     */
    private Boolean show = true;

    /**
     * 主标题文本，支持使用 \n 换行。
     */
    private String text = "";

    /**
     * 主标题文本超链接。
     */
    private String link = "";

    /**
     * 指定窗口打开主标题超链接。可选值：'self' 当前窗口打开，'blank' 新窗口打开。默认为 'blank'。
     */
    private String target = "blank";

    /**
     * 主标题文字的样式设置。
     */
    private TextStyle textStyle = new TextStyle();

    /**
     * 副标题文本，支持使用 \n 换行。
     */
    private String subtext = "";

    /**
     * 副标题文本超链接。
     */
    private String sublink = "";

    /**
     * 指定窗口打开副标题超链接，可选值：'self' 当前窗口打开，'blank' 新窗口打开。默认为 'blank'。
     */
    private String subtarget = "blank";

    /**
     * 副标题文字的样式设置。
     */
    private SubTextStyle subtextStyle = new SubTextStyle();

    /**
     * 整体（包括 text 和 subtext）的水平对齐。可选值：'auto'、'left'、'right'、'center'。默认为 'auto'。
     */
    private String textAlign = "auto";

    /**
     * 整体（包括 text 和 subtext）的垂直对齐。可选值：'auto'、'top'、'bottom'、'middle'。默认为 'auto'。
     */
    private String textVerticalAlign = "auto";

    /**
     * 是否触发事件。
     */
    private Boolean triggerEvent = false;

    /**
     * 标题内边距，单位 px，默认各方向内边距为 5，接受数组分别设定上右下左边距。
     * //TODO:细化拆解
     */
    private Object padding = 5;

    /**
     * 主副标题之间的间距。默认为 10。
     */
    private Integer itemGap = 10;

    /**
     * 所有图形的 zlevel 值。用于 Canvas 分层。
     */
    private Integer zlevel = 0 ;

    /**
     * 组件的所有图形的 z 值。控制图形的前后顺序。默认为 2。
     */
    private Integer z = 2;

    /**
     * title 组件离容器左侧的距离。可以是具体像素值、百分比，也可以是 'left', 'center', 'right'。默认为 'auto'。
     */
    private Object left = "auto";

    /**
     * title 组件离容器上侧的距离。可以是具体像素值、百分比，也可以是 'top', 'middle', 'bottom'。默认为 'auto'。
     */
    private Object top = "auto";

    /**
     * title 组件离容器右侧的距离。可以是具体像素值、百分比。默认自适应。
     */
    private Object right = "auto";

    /**
     * title 组件离容器下侧的距离。可以是具体像素值、百分比。默认自适应。
     */
    private Object bottom = "auto";

    /**
     * 标题背景色，默认透明。
     */
    private String backgroundColor = "transparent";

    /**
     * 标题的边框颜色。支持的颜色格式同 backgroundColor。默认为 '#ccc'。
     */
    private String borderColor = "#ccc";

    /**
     * 标题的边框线宽。
     */
    private Integer borderWidth = 0;

    /**
     * 圆角半径，单位 px，支持传入数组分别指定 4 个圆角半径。
     */
    private Object borderRadius = 0;

    /**
     * 图形阴影的模糊大小。该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果。
     */
    private Integer shadowBlur;

    /**
     * 阴影颜色。支持的格式同 color。
     */
    private String shadowColor;

    /**
     * 阴影水平方向上的偏移距离。
     */
    private Integer shadowOffsetX = 0;

    /**
     * 阴影垂直方向上的偏移距离。
     */
    private Integer shadowOffsetY = 0;

}
